export default{
    data(){
        let config = {}; 
        return {
            id:'preview' +  Math.random().toString(10),
            config,
            loading:false,
        }
    },
    inject:{
        modelInit:{
            default(){
                return ()=>{}
            }
        },
        repaint:{
            default(){
                return ()=>{}
            }
        }
    },
    props:{
        rowIndex:{
            type:Number,
            default:''
        },
        rowType:{
            type:String,
            default:''
        },
        modelIndex:{
            type:Number,
            default:0
        },
        modelId:{
            type:String,
            default:''
        },
        param:{
            type:Object,
            default:{}
        }
    },
    beforeMount(){
        this.setParam(JSON.parse(JSON.stringify(this.param)));
        this.modelInit(this.modelId,(param)=>{
            this.setParam(JSON.parse(JSON.stringify(param)));
            this.repaint();
        });
    },
    updated() {
        this.repaint();
    },
    methods:{
        setParam(param){
          
          if (param)  this.$assign(this.config,param,true);
        },
        getObject(){
            if (this.$refs.preview) return this.$refs.preview;
            else return null;
        }
    },
}